package com.weixing.mall.provider.service;

import com.weixing.mall.base.wrapper.Result;
import com.weixing.mall.core.support.auth.MemAuth;
import com.weixing.mall.core.support.auth.SysAuth;
import com.weixing.mall.provider.api.model.vo.AgentRpcVo;
import com.weixing.mall.provider.model.dto.*;
import com.weixing.mall.provider.model.vo.PreOrderInfoVo;

/**
 * <p>
 * 订单模块-主订单 服务类
 * </p>
 *
 * @author Small
 * @since 2020-01-15
 */
public interface IOrderTradeService  {

    Result<PreOrderInfoVo> memberPreOrderOfQuick(MemberPreOrderDto orderDto, MemAuth memAuth, AgentRpcVo agentRpcVo);


    PreOrderInfoVo memberPreOrderOfCart(MemberPreOrderCartDto orderDto, MemAuth memAuth, AgentRpcVo agentRpcVo);

    Result preOrderOfAgent(AgentPlaceOrderDto agentPlaceOrderDto, AgentRpcVo data);

    Result kefuPlaceOrder(KefuPlaceOrderDto customerPlaceOrderDto, SysAuth sysAuth);

    Result seckill(MemberSeckillDto orderDto, MemAuth auth, AgentRpcVo agentRpcVo);

    void updateOrderGoods(Long orderId, Long itemId);

    void updateOrderParam(OrderParamDto paramDto);
}
